import axios from 'axios'


// 自己封装的网络请求模块
export function request(config, success, failure) {

  // 1. 创建axio的实例
  const instance = axios.create({
    baseURL: 'http://192.168.1.241:8001',
    timeout : 5000
  })

  instance(config)
    .then(res => {
      // console.log(res)
      success(res)
    })
    .catch(err => {
      // console.log(res)
      failure(res)
    })
}

// 自己封装的网络请求模块2
export function request2(config) {

  // 1. 创建axio的实例
  const instance = axios.create({
    baseURL: 'http://192.168.1.241:8001',
    timeout : 5000
  })

  instance(config.baseConfig)
    .then(res => {
      // console.log(res)
      config.success(res)
    })
    .catch(err => {
      // console.log(res)
      config.failure(res)
    })
}

// 自己封装的网络请求模块3
export function request3(config) {

  return new Promise((resolve, reject) => {
      // 1. 创建axio的实例
    const instance = axios.create({
      baseURL: 'http://192.168.1.241:8001',
      timeout : 5000
    })

    instance(config)
      .then(res => {
        resolve(res)
      })
      .catch(err => {
        reject(res)
      })
  })
}

// 最终封装
export function request4(config) {
  // 1. 创建axio的实例
  const instance = axios.create({
    baseURL: 'http://192.168.1.241:8001',
    timeout : 5000
  })

  // 2. axios的拦截器
  // 拦截请求
  instance.interceptors.request.use(config => {
    console.log(config)
    return config
  }, err => {
    console.log(err)
  })
  
  // 拦截响应
  // instance.interceptors.response;
  

  // 3. 发送真正的网络请求 promise
  return instance(config)
}
